#pragma once

#include <BWAPI.h>

enum BattleModelUnitController {Player, Enemy};

class BattleModelUnit{
public:
	std::string m_name;
	int m_speed;
	int m_groundRange;
	int m_groundCooldown;
	int m_moveCooldown;
	int m_capacityRequired;
	int m_hp;
	int m_cooldown;
	int m_location;
	BattleModelUnitController m_controller;
	BattleModelUnit(
		BWAPI::Unit *unit
	);
	BattleModelUnit(
		const int location,
		const BWAPI::UnitType unitType,
		const std::string name,
		const BattleModelUnitController controller
	);
	virtual void print() const;
	void tryToMove(
		const int direction
	);
	void onFrame();
};

/*class StandardBattleModelUnit : public BattleModelUnit{
public:
	StandardBattleModelUnit(
		const int location,
		const BWAPI::UnitType unitType,
		const std::string name,
		const BattleModelUnitController controller
	);
};*/